Combining Model and Iterative Compilation for Program Performance Optimization
نویسندگان
چکیده
The performance gap for high performance applications has been widening over time. High level program transformations are critical to improve applications’ performance, many of which concern the determination of optimal values for transformation parameters, such as loop unrolling and blocking. Static approaches achieve these values based on analytical models that are hard to achieve because of increasing architecture complexity and code structures. Recent iterative compilation approaches achieve it by executing different versions of the program on actual platforms and select the one that renders best performance, outperforming static compilation approaches significantly. But the expensive compilation cost has limited their application scope to embedded applications and a small group of math kernels. This paper proposes a combinative approach--Combining Model and Iterative Compilation for Program Performance Optimization (CMIC). Such an approach first constructs a program optimization transformation model based on hardware performance counters to decide how and when to apply transformations, and then selects the optimal transformation parameters using Nelder-Mead simplex algorithm. Experimental results show that our approach can effectively improve programs’ floating-point performance, reducing programs’ runtime, therefore, lessening the performance gap for high-performance applications.
منابع مشابه
Towards a General Framework for Composing Disjunctive and Iterative Macro-operators
Inducing disjunctive and iterative macro-operators from empirical problem-solving traces provides a more powerful knowledge compilation method than simple linear macro-operators. Whereas earlier work focused on when to create iterative macro-operators, this paper addresses how to form them, combining proven optimization methods such as extraction of loop invariants, with techniques for further ...
متن کاملIterative Compilation in Program Optimization
In this paper we describe a novel approach to program optimization, namely, iterative compilation. This technique enables compilers to deliver e cient code by searching for the best sequence of optimizations using pro le-directed feedback. We have implemented this iterative approach in an existing compiler system which is designed for embedded systems and compared its performance to two of the ...
متن کاملIterative Compilation with Kernel Exploration
The increasing complexity of hardware mechanisms for recent processors makes high performance code generation very challenging. One of the main issue for high performance is the optimization of memory accesses. General purpose compilers, with no knowledge of the application context and approximate memory model, seem inappropriate for this task. Combining applicationdependent optimizations on th...
متن کاملOnline Iterative Compilation Guided by Work-based Profiling
In modern optimising compilers, the correct choice of an optimisation sequence can have a significant impact on the performance of the final optimised program. Each of these optimisation passes interacts with the code in complicated ways, depending on all other optimisations and the order they were applied to the code being optimised. Because of the unpredictability of optimisation interactions...
متن کاملPre- and Post Selection of Compiler Optimizations by Program Execution
In this paper, we investigate the combined use of static techniques and dynamic feedback information to achieve a high level of optimization of both compiler eeciency and code performance. In previous work, we have introduced a new compiler approach, iterative compilation, to select the best tile sizes and unrolling factors. In this approach, many versions of programs are generated and their wo...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- JSW
دوره 4 شماره
صفحات -
تاریخ انتشار 2009